package cn.iocoder.yudao.module.dr.dal.mysql.data;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.dr.controller.admin.data.vo.DataItemPageReqVO;
import cn.iocoder.yudao.module.dr.dal.dataobject.data.DataItemDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 共享数据项 Mapper
 *
 * @author 管理员
 */
@Mapper
public interface DataItemMapper extends BaseMapperX<DataItemDO> {

    default PageResult<DataItemDO> selectPage(DataItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<DataItemDO>()
                .eqIfPresent(DataItemDO::getDataId, reqVO.getDataId())
                .likeIfPresent(DataItemDO::getItemName, reqVO.getItemName())
                .eqIfPresent(DataItemDO::getItemEnglish, reqVO.getItemEnglish())
                .eqIfPresent(DataItemDO::getItemType, reqVO.getItemType())
                .eqIfPresent(DataItemDO::getItemDesc, reqVO.getItemDesc())
                .betweenIfPresent(DataItemDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(DataItemDO::getId));
    }

    default List<DataItemDO> selectListByDataId(Long dataId) {
        return selectList(DataItemDO::getDataId, dataId);
    }

    default int deleteByDataId(Long dataId) {
        return delete(DataItemDO::getDataId, dataId);
    }

}